#ifndef _WORK_ENVIROMENT_D7E2A732_4EE5_4F19_ABAC_B979446D9265_
#define _WORK_ENVIROMENT_D7E2A732_4EE5_4F19_ABAC_B979446D9265_
#include "base/message_loop.h"
#include "base/threading/thread.h"
#include "base/threading/non_thread_safe.h"

namespace dl {

class WorkChannelManager;
class ResourceDispatcher;

class WorkEnviroment : public base::NonThreadSafe {
public:
	explicit WorkEnviroment(MessageLoop* message_loop);
	~WorkEnviroment();
	void CreateChannel(const std::string& pipe);
	void ExitProcess();

private:
	MessageLoop* message_loop_;
	scoped_ptr<base::Thread>          io_thread_;
	scoped_ptr<WorkChannelManager>    work_channel_manager_;
  scoped_ptr<ResourceDispatcher>    resource_dispatcher_;
};

}

#endif//_WORK_ENVIROMENT_D7E2A732_4EE5_4F19_ABAC_B979446D9265_
